/*-------------------------------------------------------------------*/
//		Project: C-case-study (Dung, Quang, Thanh, Cuong)
//     Filename: global.cpp
//  Description: Cac khai bao chung, cac ham su dung chung
//       Author: Duong Trung Dung
//Date Modified: 25/10/2007
/*-------------------------------------------------------------------*/

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
// Library Declaration

// ************************** GLOBAL VARIABLES **************************
typedef struct struct_class
{
	char classname[10];					// C0707L
	char teacher[30];					// Bui Dinh Ngoc
	char room[20];						// Class 1, Lab 1
	char time[20];						// 17h30 - 19h30
   int total;							// tong so hoc sinh toi da
} struct_class;

typedef struct struct_mark
{
	char subname[10];					// EPC
	float T;							// 80
	float P;							// 80
} struct_mark;

typedef struct struct_student
{
	char name[30];						// Duong Trung Dung
	char rollno[10];					// A0008
	char birth[20];						// 03/04/1990
	char add[50];						// ngo 25 pho Luong Khanh Thien
	char classname[10];					// C0707L
	struct_mark mark[10]; int mcount;	// Mang luu diem cua hoc sinh, su dung bien dem mcount
} struct_student;

struct_class cls[10]; int ccount=0;     // Mang lop hoc, su dung bien dem ccount
struct_student stu[100]; int scount=0;	// Mang hoc sinh, su dung bien dem scount

// ************************** INCLUDED FUNCTIONS ***********************
void MainMenu();
void save();
void load();

// ************************** GLOBAL FUNCTIONS **************************

float sd_float(float no)
{
	return float(floor(no*100)/100);
}
// standardize float -> Chuan hoa so float, 2 chu so o hang thap phan : sd_float(13.333333) = 13.33

void strUpper(char *str)
{
	char *s=str;
	for (int i=0;i<strlen(s);i++)
	{
		s[i]=toupper(s[i]);
	}
	str=s;
}
// String To Upper -> Chuyen xau thanh xau chu hoa : strUpper("c0707l") = "C0707L"

int isClassname(char *str)
{
	int r=1;
	if (strlen(str)<3) return 0;
	if (isalpha(str[0])==0) return 0;
	if (isalpha(str[strlen(str)-1])==0) return 0;
	for (int i=1;i<strlen(str)-1;i++)
	{
		if (isdigit(str[i])==0) r=0;
	}
	return r;
}
// Is classname -> Kiem tra xau co phai ten cua lop hay khong : isClassname("c0707l") = 1, isClassname("c0707") = 0

int isRollno(char *str)
{
	int r=1;
	if (strlen(str)<2) r=0;
	if (isalpha(str[0])==0) r=0;
	for (int i=1;i<strlen(str);i++)
	{
		if (isdigit(str[i])==0) r=0;
	}
	return r;
}
// Is Roll no -> Kiem tra xau co phai ma hoc vien hay khong : isClassname("a0007h") = 0, isClassname("A0007") = 1

void quit()
{
	save();
	exit(1);
}

// ************************** END OF  GLOBAL FUNCTIONS **************************